#ifndef __MISC_SYSTEM_H
#define __MISC_SYSTEM_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stdbool.h>
#include <stdint.h>

typedef enum {
    WORK_MODE_NORMAL = 0,
    WORK_MODE_SLEEP,
}work_mode_e;

typedef enum {
    INACTIVE = 0,
    ACTIVE,
}active_state_e;

void misc_fix_report_process(void);
void misc_system_event_process(void);
active_state_e  misc_get_active_state(void);
work_mode_e     misc_get_work_mode(void);

// /* 当需要发送时设置需要发送的报文标记位 */
// void set_misc_data_send_mask(uint32_t mask);

// /* 不需要发送GPS/WIFI/LBS时清除需要发送的报文标记位 */
// void clear_misc_data_send_mask_all(void);

// /* 单个报文发送完成，设置相应的标记位 */
// void set_misc_data_send_ok(uint32_t state);

// /* 新一轮报文发送周期初始化发送状态 */
// void reset_misc_data_send_ok(uint32_t state);

// /* 新一轮报文发送周期初始化发送状态 */
// void clear_misc_data_send_ok_all(void);

// /* 所有报文发送完毕 */
// bool is_misc_report_send_ok(void);


unsigned int get_gps_report_next_send(void);
unsigned int get_lbs_report_next_send(void);
unsigned int get_wifi_report_next_send(void);
unsigned int get_rsrp_report_next_send(void);
unsigned int get_can_info_type1_report_next_send(void);
unsigned int get_can_info_type2_report_next_send(void);
unsigned int get_batt_report_next_send(void);

void corner_report_trigger(void);
void gps_report_trigger(void);
void lbs_report_trigger(void);
#ifdef __cplusplus
}
#endif

#endif // __MISC_SYSTEM_H
